Ознайомлення з основними конструкціями мови моделювання System C

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
О
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2018
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Комп’ютерні системи

Частина тексту файла

Міністерство освіти і науки України Національний університет “Львівська політехніка” / Звіт До лабораторної роботи №2 З дисципліни: «Комп'ютерні системи» на тему: «Ознайомлення з основними конструкціями мови моделювання System C» Мета роботи: Ознайомитися з основними конструкціями мови моделювання System C. Хід роботи Варіант – 6 Х = 6 Y = 167 Реалізувати модулі S1 та S2, разом з логікою їх функціонування згідно варіанту, провести послідовне з’єднання S1 та S2 ініціалізувати необхідні порти на S1. На вхід S2 подати вихідні порти модуля S1. До кожного модуля заводиться зовнішній вхідний для всіх сигнал синхронізації CLK. Результати подати на модуль Display для відображення. S1 2 вихідних порта o1, o2 o1 = X – Y; o2 = (X + Y / 2.0) && (X >> 2); S2 r1 = a * b , r2 = 6; Схема зв’язків модулів Код програми #ifndef TEST_SYSTEMC_S1_H #define TEST_SYSTEMC_S1_H #include "systemc.h" #include "cmath" #include "s2.h" SC_MODULE (S1) { sc_in<int> x; sc_in<int> y; sc_out<int> o1; sc_out<int> o2; sc_in<bool> clk; SC_CTOR(S1) { SC_METHOD(calc_o2); sensitive << x << y; sensitive_pos << clk; SC_METHOD(calc_o1); sensitive << x << y; sensitive_pos << clk; } void calc_o2() { int x_val = x.read(); int y_val = y.read(); double acc = 0; acc += ((x_val + y_val) / 2.0) & (2 >> x_val); o2.write(acc); } void calc_o1() { int x_val = x.read(); int y_val = y.read(); o1.write(x_val - y_val); } }; #endif //TEST_SYSTEMC_S1_H// s2.h #ifndef TEST_SYSTEMC_S2_H #define TEST_SYSTEMC_S2_H #include "systemc.h" SC_MODULE(S2) { sc_in<int> a; sc_in<int> b; sc_out<int> r1; sc_out<int> r2; sc_in<bool> clk; SC_CTOR(S2) { SC_METHOD(calc_r1); sensitive << a << b; sensitive_pos << clk; SC_METHOD(calc_r2) sensitive << a << b; sensitive_pos << clk; } void calc_r1() { int a_val = a.read(); r1.write(a_val * a_val); } void calc_r2() { int b_val = b.read(); r2.write(6); } }; #endif //TEST_SYSTEMC_S2_H // main.cpp #include <iostream> #include <systemc.h> #include "s1.h" #include "s2.h" int sc_main(int argc, char *argv[]) { sc_signal<int> x{"x", 6}; sc_signal<int> y{"y", 167}; sc_signal<int> o2{"o2"}; sc_signal<int> o1{"o1"}; sc_signal<int> r1{"r2"}; sc_signal<int> r2{"r1"}; sc_clock clk("clk", 1, SC_NS, 0.5); S1 s1("s1"); S2 s2("s2"); s1.clk(clk); s2.clk(clk); s1.x(x); s1.y(y); s1.o2(o2); s1.o1(o1); s2.a(o2); s2.b(o1); s2.r1(r1); s2.r2(r2); sc_start(10, SC_NS); std::cout << "x: " << x.read() << std::endl; std::cout << "y: " << y.read() << std::endl; std::cout << "r1: " << r1.read() << std::endl; std::cout << "r2: " << r2.read() << std::endl; return 0; } Результат виконання x: 6 y: 167 r1: 13568067 r2: 6 Висновок: на даній лабораторній роботі я ознайомився з основними конструкціями мови моделювання System C. Створив програму та відлагодив її за допомогою System C .
Антиботан аватар за замовчуванням

24.11.2018 16:11

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини